Online storage providers allow users to store vast amounts of personal data in the “cloud,” or network computing resources available through the Internet, and access and share such data through a web browser, a desktop interface, or a mobile application. The growing popularity of such services has enabled users to store, update and backup data from remote locations using diverse processing devices, with ease and efficiency.
Despite the promise of cloud computing to offer one central location to store and access all of one's data, multiple cloud service providers, in reality, have provided different and potentially incompatible storage locations where duplicate and often inconsistent copies of data may exist at any given time. For instance, a user may place her wedding photos simultaneously on an online photo-sharing website, a social media network, a flash memory device on her mobile phone, and a personal blog. Over time, however, the identical data stored at these multiple storage locations may become out of sync as the user adds, deletes, or modifies one or more photos at some but not all of the locations. As users can upload from multiple devices to multiple services, the information may be spread out over a multitude of storage devices, services, and locations. This makes it difficult for one to maintain consistent up-to-date identical copies of the data. The value of an online storage medium or an off-site backup location will dramatically decrease if the integrity and reliability of the stored data may be called into question at any time because one cannot ascertain whether a given copy of data is most current and up-to-date.
The problem is further exacerbated when it is difficult or impractical to collect and merge all the data that is already scattered throughout multiple Internet-based storage services. Migrating data from one such service to another can be a daunting task, as the process often requires manual user input by the user. Even if successfully migrated, the data needs to be constantly monitored to maintain its consistency between the two data sources. The complexity of these tasks only heightens as the number of data resources increases.